`include "define.v"
module IDF_IDS
(
    input   wire                clk,
    input   wire                rstn,
    input   wire                flush,
    input   wire                stall,
    //
    input   wire                IDF_IDS_BUBBLE_FLAG_i,
    input   wire                IDF_IDS_ILLEGAL_INSTR_FLAG_i,
    //
    input   wire    [63:00]     IDF_IDS_PC_i,
    input   wire    [31:00]     IDF_IDS_INSTR_i,
    input   wire    [02:00]     IDF_IDS_FUNCT3_i,
    //
    input   wire                IDF_IDS_INSTR_JALR_i,
    input   wire                IDF_IDS_INSTR_LOAD_i,
    input   wire                IDF_IDS_INSTR_STORE_i,
    input   wire                IDF_IDS_INSTR_SYSTEM_i,
    input   wire                IDF_IDS_INSTR_BRANCH_i,
    input   wire                IDF_IDS_BRANCH_PREDIC_RES_i,
    input   wire    [63:00]     IDF_IDS_BRANCH_RESERVE_ADDR_i,
    //
    input   wire                IDF_IDS_OPERAND1_SEL_i,
    input   wire                IDF_IDS_OPERAND2_SEL_i,
    input   wire    [63:00]     IDF_IDS_CSR_OUTPUT_i,
    input   wire    [63:00]     IDF_IDS_GPR_OUTPUT1_i,
    input   wire    [63:00]     IDF_IDS_GPR_OUTPUT2_i,
    input   wire    [63:00]     IDF_IDS_IMM_i,
    input   wire    [63:00]     IDF_IDS_GPR_BYPASSDATA_EX_i,
    input   wire    [63:00]     IDF_IDS_GPR_BYPASSDATA_MEM_i,
    input   wire    [63:00]     IDF_IDS_GPR_BYPASSDATA_WB_i,
    input   wire    [63:00]     IDF_IDS_CSR_BYPASSDATA_EX_i,
    input   wire    [63:00]     IDF_IDS_CSR_BYPASSDATA_MEM_i,
    input   wire    [63:00]     IDF_IDS_CSR_BYPASSDATA_WB_i,
    input   wire                IDF_IDS_RS1_BYPASSDATA_SEL_i    ,
    input   wire                IDF_IDS_RS2_BYPASSDATA_SEL_i    ,
    input   wire                IDF_IDS_CSR_BYPASSDATA_SEL_i    ,
    input   wire                IDF_IDS_RS1_BYPASSDATA_EX_SEL_i ,
    input   wire                IDF_IDS_RS1_BYPASSDATA_MEM_SEL_i,
    input   wire                IDF_IDS_RS1_BYPASSDATA_WB_SEL_i ,
    input   wire                IDF_IDS_RS2_BYPASSDATA_EX_SEL_i ,
    input   wire                IDF_IDS_RS2_BYPASSDATA_MEM_SEL_i,
    input   wire                IDF_IDS_RS2_BYPASSDATA_WB_SEL_i ,
    input   wire                IDF_IDS_CSR_BYPASSDATA_EX_SEL_i ,
    input   wire                IDF_IDS_CSR_BYPASSDATA_MEM_SEL_i,
    input   wire                IDF_IDS_CSR_BYPASSDATA_WB_SEL_i ,
    //
    input   wire                IDF_IDS_GPR_WRITE_BACK_EN_i,
    input   wire    [04:00]     IDF_IDS_GPR_WRITE_BACK_ID_i,
    input   wire                IDF_IDS_GPR_WRITE_BACK_FROM_ALU_i,
    input   wire                IDF_IDS_GPR_WRITE_BACK_FROM_LSU_i,
    input   wire                IDF_IDS_GPR_WRITE_BACK_FROM_MDU_i,
    input   wire    [03:00]     IDF_IDS_DISP_TARGET_i,
    input   wire                IDF_IDS_CSR_WRITE_BACK_EN_i,
    input   wire    [11:00]     IDF_IDS_CSR_WRITE_BACK_ID_i,  
    // 
    input   wire    [01:00]     IDF_IDS_ALU_SHIFT_MODE_i,
    input   wire    [10:00]     IDF_IDS_ALU_OP_i,
    input   wire    [08:00]     IDF_IDS_MDU_OP_i,  
    //        
    input   wire    [63:00]     IDF_IDS_JALR_OFFSET_i,
//--------------------------------------------------------
    output  reg                 IDF_IDS_BUBBLE_FLAG_o,
    output  reg                 IDF_IDS_ILLEGAL_INSTR_FLAG_o,                   
    //
    output  reg     [63:00]     IDF_IDS_PC_o,
    output  reg     [02:00]     IDF_IDS_FUNCT3_o,
    output  reg     [31:00]     IDF_IDS_INSTR_o,                                    
    //
    output  reg                 IDF_IDS_INSTR_JALR_o,
    output  reg                 IDF_IDS_INSTR_LOAD_o,                                    
    output  reg                 IDF_IDS_INSTR_STORE_o, 
    output  reg                 IDF_IDS_INSTR_SYSTEM_o,                                     
    output  reg                 IDF_IDS_INSTR_BRANCH_o,
    output  reg                 IDF_IDS_BRANCH_PREDIC_RES_o,
    output  reg     [63:00]     IDF_IDS_BRANCH_RESERVE_ADDR_o,  
    output  reg                 IDF_IDS_OPERAND1_SEL_o,
    output  reg                 IDF_IDS_OPERAND2_SEL_o,
    output  reg     [63:00]     IDF_IDS_CSR_OUTPUT_o,
    output  reg     [63:00]     IDF_IDS_GPR_OUTPUT1_o,
    output  reg     [63:00]     IDF_IDS_GPR_OUTPUT2_o,
    output  reg     [63:00]     IDF_IDS_IMM_o,
    output  reg     [63:00]     IDF_IDS_GPR_BYPASSDATA_EX_o ,
    output  reg     [63:00]     IDF_IDS_GPR_BYPASSDATA_MEM_o,
    output  reg     [63:00]     IDF_IDS_GPR_BYPASSDATA_WB_o ,
    output  reg     [63:00]     IDF_IDS_CSR_BYPASSDATA_EX_o ,
    output  reg     [63:00]     IDF_IDS_CSR_BYPASSDATA_MEM_o,
    output  reg     [63:00]     IDF_IDS_CSR_BYPASSDATA_WB_o ,
    output  reg                 IDF_IDS_RS1_BYPASSDATA_SEL_o    ,
    output  reg                 IDF_IDS_RS2_BYPASSDATA_SEL_o    ,
    output  reg                 IDF_IDS_CSR_BYPASSDATA_SEL_o    ,
    output  reg                 IDF_IDS_RS1_BYPASSDATA_EX_SEL_o ,
    output  reg                 IDF_IDS_RS1_BYPASSDATA_MEM_SEL_o,
    output  reg                 IDF_IDS_RS1_BYPASSDATA_WB_SEL_o ,
    output  reg                 IDF_IDS_RS2_BYPASSDATA_EX_SEL_o ,
    output  reg                 IDF_IDS_RS2_BYPASSDATA_MEM_SEL_o,
    output  reg                 IDF_IDS_RS2_BYPASSDATA_WB_SEL_o ,
    output  reg                 IDF_IDS_CSR_BYPASSDATA_EX_SEL_o ,
    output  reg                 IDF_IDS_CSR_BYPASSDATA_MEM_SEL_o,
    output  reg                 IDF_IDS_CSR_BYPASSDATA_WB_SEL_o ,                 
    //
    output  reg                 IDF_IDS_GPR_WRITE_BACK_EN_o,                   
    output  reg     [04:00]     IDF_IDS_GPR_WRITE_BACK_ID_o,                   
    output  reg                 IDF_IDS_GPR_WRITE_BACK_FROM_ALU_o,
    output  reg                 IDF_IDS_GPR_WRITE_BACK_FROM_LSU_o,
    output  reg                 IDF_IDS_GPR_WRITE_BACK_FROM_MDU_o,
    output  reg                 IDF_IDS_CSR_WRITE_BACK_EN_o,                   
    output  reg     [11:00]     IDF_IDS_CSR_WRITE_BACK_ID_o, 
    output  reg     [03:00]     IDF_IDS_DISP_TARGET_o,                    
    // 
    output  reg     [01:00]     IDF_IDS_ALU_SHIFT_MODE_o, 
    output  reg     [10:00]     IDF_IDS_ALU_OP_o,
    output  reg     [08:00]     IDF_IDS_MDU_OP_o,                    
    //           
    output  reg     [63:00]     IDF_IDS_JALR_OFFSET_o                                  
                
);
    always @(posedge clk ) begin
        if (!rstn | flush) begin
            IDF_IDS_BUBBLE_FLAG_o                                           <=  1'b1;        // flush后产生气泡 
            IDF_IDS_ILLEGAL_INSTR_FLAG_o                                    <=  1'b0;          
            IDF_IDS_INSTR_o                                                 <=  `BUBBLE;
            IDF_IDS_PC_o                                                    <=  64'b0;
            IDF_IDS_FUNCT3_o                                                <=  3'b0; 
            IDF_IDS_INSTR_JALR_o                                            <=  1'b0;                        
            IDF_IDS_INSTR_LOAD_o                                            <=  1'b0;                    
            IDF_IDS_INSTR_STORE_o                                           <=  1'b0; 
            IDF_IDS_INSTR_SYSTEM_o                                          <=  1'b0;                       
            IDF_IDS_INSTR_BRANCH_o                                          <=  1'b0; 
            IDF_IDS_BRANCH_PREDIC_RES_o                                     <=  1'b0;
            IDF_IDS_BRANCH_RESERVE_ADDR_o                                   <=  64'b0;
            IDF_IDS_OPERAND1_SEL_o                                          <=  1'b0;
            IDF_IDS_OPERAND2_SEL_o                                          <=  1'b0;
            IDF_IDS_CSR_OUTPUT_o                                            <=  64'b0;    
            IDF_IDS_GPR_OUTPUT1_o                                           <=  64'b0;
            IDF_IDS_GPR_OUTPUT2_o                                           <=  64'b0;
            IDF_IDS_IMM_o                                                   <=  64'b0;
            IDF_IDS_GPR_BYPASSDATA_EX_o                                     <=  64'b0;
            IDF_IDS_GPR_BYPASSDATA_MEM_o                                    <=  64'b0;
            IDF_IDS_GPR_BYPASSDATA_WB_o                                     <=  64'b0;
            IDF_IDS_CSR_BYPASSDATA_EX_o                                     <=  64'b0;
            IDF_IDS_CSR_BYPASSDATA_MEM_o                                    <=  64'b0;
            IDF_IDS_CSR_BYPASSDATA_WB_o                                     <=  64'b0;
            IDF_IDS_RS1_BYPASSDATA_SEL_o                                    <=  1'b0;
            IDF_IDS_RS2_BYPASSDATA_SEL_o                                    <=  1'b0;
            IDF_IDS_CSR_BYPASSDATA_SEL_o                                    <=  1'b0;
            IDF_IDS_RS1_BYPASSDATA_EX_SEL_o                                 <=  1'b0;
            IDF_IDS_RS1_BYPASSDATA_MEM_SEL_o                                <=  1'b0;
            IDF_IDS_RS1_BYPASSDATA_WB_SEL_o                                 <=  1'b0;
            IDF_IDS_RS2_BYPASSDATA_EX_SEL_o                                 <=  1'b0;
            IDF_IDS_RS2_BYPASSDATA_MEM_SEL_o                                <=  1'b0;
            IDF_IDS_RS2_BYPASSDATA_WB_SEL_o                                 <=  1'b0;
            IDF_IDS_CSR_BYPASSDATA_EX_SEL_o                                 <=  1'b0;
            IDF_IDS_CSR_BYPASSDATA_MEM_SEL_o                                <=  1'b0;
            IDF_IDS_CSR_BYPASSDATA_WB_SEL_o                                 <=  1'b0;       
            IDF_IDS_GPR_WRITE_BACK_EN_o                                     <=  1'b0;      
            IDF_IDS_GPR_WRITE_BACK_ID_o                                     <=  5'b0;
            IDF_IDS_GPR_WRITE_BACK_FROM_ALU_o                               <=  1'b0;
            IDF_IDS_GPR_WRITE_BACK_FROM_LSU_o                               <=  1'b0;
            IDF_IDS_GPR_WRITE_BACK_FROM_MDU_o                               <=  1'b0;      
            IDF_IDS_DISP_TARGET_o                                           <=  4'b0;
            IDF_IDS_CSR_WRITE_BACK_EN_o                                     <=  1'b0;      
            IDF_IDS_CSR_WRITE_BACK_ID_o                                     <=  12'b0;
            IDF_IDS_ALU_SHIFT_MODE_o                                        <=  2'b00;                 
            IDF_IDS_ALU_OP_o                                                <=  9'b0;
            IDF_IDS_MDU_OP_o                                                <=  9'b0; 
            IDF_IDS_JALR_OFFSET_o                                           <=  64'b0;                    
     
        end
        else if( stall ) begin
            IDF_IDS_BUBBLE_FLAG_o                                           <=  IDF_IDS_BUBBLE_FLAG_o; 
            IDF_IDS_ILLEGAL_INSTR_FLAG_o                                    <=  IDF_IDS_ILLEGAL_INSTR_FLAG_o;                  
            IDF_IDS_INSTR_o                                                 <=  IDF_IDS_INSTR_o;
            IDF_IDS_PC_o                                                    <=  IDF_IDS_PC_o;
            IDF_IDS_FUNCT3_o                                                <=  IDF_IDS_FUNCT3_o; 
            IDF_IDS_INSTR_JALR_o                                            <=  IDF_IDS_INSTR_JALR_o;                               
            IDF_IDS_INSTR_LOAD_o                                            <=  IDF_IDS_INSTR_LOAD_o;                    
            IDF_IDS_INSTR_STORE_o                                           <=  IDF_IDS_INSTR_STORE_o;
            IDF_IDS_INSTR_SYSTEM_o                                          <=  IDF_IDS_INSTR_SYSTEM_o;             
            IDF_IDS_INSTR_BRANCH_o                                          <=  IDF_IDS_INSTR_BRANCH_o; 
            IDF_IDS_BRANCH_PREDIC_RES_o                                     <=  IDF_IDS_BRANCH_PREDIC_RES_o ;
            IDF_IDS_BRANCH_RESERVE_ADDR_o                                   <=  IDF_IDS_BRANCH_RESERVE_ADDR_o;
            IDF_IDS_OPERAND1_SEL_o                                          <=  IDF_IDS_OPERAND1_SEL_o;
            IDF_IDS_OPERAND2_SEL_o                                          <=  IDF_IDS_OPERAND2_SEL_o;
            IDF_IDS_CSR_OUTPUT_o                                            <=  IDF_IDS_CSR_OUTPUT_o;  
            IDF_IDS_GPR_OUTPUT1_o                                           <=  IDF_IDS_GPR_OUTPUT1_o     ;
            IDF_IDS_GPR_OUTPUT2_o                                           <=  IDF_IDS_GPR_OUTPUT2_o     ;
            IDF_IDS_IMM_o                                                   <=  IDF_IDS_IMM_o         ;
            IDF_IDS_GPR_BYPASSDATA_EX_o                                     <=  IDF_IDS_GPR_BYPASSDATA_EX_o ;
            IDF_IDS_GPR_BYPASSDATA_MEM_o                                    <=  IDF_IDS_GPR_BYPASSDATA_MEM_o;
            IDF_IDS_GPR_BYPASSDATA_WB_o                                     <=  IDF_IDS_GPR_BYPASSDATA_WB_o ;
            IDF_IDS_CSR_BYPASSDATA_EX_o                                     <=  IDF_IDS_CSR_BYPASSDATA_EX_o ;
            IDF_IDS_CSR_BYPASSDATA_MEM_o                                    <=  IDF_IDS_CSR_BYPASSDATA_MEM_o;
            IDF_IDS_CSR_BYPASSDATA_WB_o                                     <=  IDF_IDS_CSR_BYPASSDATA_WB_o ;
            IDF_IDS_RS1_BYPASSDATA_SEL_o                                    <=  IDF_IDS_RS1_BYPASSDATA_SEL_o;
            IDF_IDS_RS2_BYPASSDATA_SEL_o                                    <=  IDF_IDS_RS2_BYPASSDATA_SEL_o;
            IDF_IDS_CSR_BYPASSDATA_SEL_o                                    <=  IDF_IDS_CSR_BYPASSDATA_SEL_o;
            IDF_IDS_RS1_BYPASSDATA_EX_SEL_o                                 <=  IDF_IDS_RS1_BYPASSDATA_EX_SEL_o ;
            IDF_IDS_RS1_BYPASSDATA_MEM_SEL_o                                <=  IDF_IDS_RS1_BYPASSDATA_MEM_SEL_o;
            IDF_IDS_RS1_BYPASSDATA_WB_SEL_o                                 <=  IDF_IDS_RS1_BYPASSDATA_WB_SEL_o ;
            IDF_IDS_RS2_BYPASSDATA_EX_SEL_o                                 <=  IDF_IDS_RS2_BYPASSDATA_EX_SEL_o ;
            IDF_IDS_RS2_BYPASSDATA_MEM_SEL_o                                <=  IDF_IDS_RS2_BYPASSDATA_MEM_SEL_o;
            IDF_IDS_RS2_BYPASSDATA_WB_SEL_o                                 <=  IDF_IDS_RS2_BYPASSDATA_WB_SEL_o ;
            IDF_IDS_CSR_BYPASSDATA_EX_SEL_o                                 <=  IDF_IDS_CSR_BYPASSDATA_EX_SEL_o ;
            IDF_IDS_CSR_BYPASSDATA_MEM_SEL_o                                <=  IDF_IDS_CSR_BYPASSDATA_MEM_SEL_o;
            IDF_IDS_CSR_BYPASSDATA_WB_SEL_o                                 <=  IDF_IDS_CSR_BYPASSDATA_WB_SEL_o ;             
            IDF_IDS_GPR_WRITE_BACK_EN_o                                     <=  IDF_IDS_GPR_WRITE_BACK_EN_o;      
            IDF_IDS_GPR_WRITE_BACK_ID_o                                     <=  IDF_IDS_GPR_WRITE_BACK_ID_o; 
            IDF_IDS_GPR_WRITE_BACK_FROM_ALU_o                               <=  IDF_IDS_GPR_WRITE_BACK_FROM_ALU_o;
            IDF_IDS_GPR_WRITE_BACK_FROM_LSU_o                               <=  IDF_IDS_GPR_WRITE_BACK_FROM_LSU_o;
            IDF_IDS_GPR_WRITE_BACK_FROM_MDU_o                               <=  IDF_IDS_GPR_WRITE_BACK_FROM_MDU_o;     
            IDF_IDS_DISP_TARGET_o                                           <=  IDF_IDS_DISP_TARGET_o;  
            IDF_IDS_CSR_WRITE_BACK_EN_o                                     <=  IDF_IDS_CSR_WRITE_BACK_EN_o;      
            IDF_IDS_CSR_WRITE_BACK_ID_o                                     <=  IDF_IDS_CSR_WRITE_BACK_ID_o; 
            IDF_IDS_ALU_SHIFT_MODE_o                                        <=  IDF_IDS_ALU_SHIFT_MODE_o;                 
            IDF_IDS_ALU_OP_o                                                <=  IDF_IDS_ALU_OP_o;
            IDF_IDS_MDU_OP_o                                                <=  IDF_IDS_MDU_OP_o;            
       
            IDF_IDS_JALR_OFFSET_o                                           <=  IDF_IDS_JALR_OFFSET_o;                    
       
        end
        else    begin
            IDF_IDS_BUBBLE_FLAG_o                                           <=  IDF_IDS_BUBBLE_FLAG_i; 
            IDF_IDS_ILLEGAL_INSTR_FLAG_o                                    <=  IDF_IDS_ILLEGAL_INSTR_FLAG_i;                 
            IDF_IDS_INSTR_o                                                 <=  IDF_IDS_INSTR_i;
            IDF_IDS_PC_o                                                    <=  IDF_IDS_PC_i;
            IDF_IDS_FUNCT3_o                                                <=  IDF_IDS_FUNCT3_i;
            IDF_IDS_INSTR_JALR_o                                            <=  IDF_IDS_INSTR_JALR_i;                                
            IDF_IDS_INSTR_LOAD_o                                            <=  IDF_IDS_INSTR_LOAD_i;                    
            IDF_IDS_INSTR_STORE_o                                           <=  IDF_IDS_INSTR_STORE_i;
            IDF_IDS_INSTR_SYSTEM_o                                          <=  IDF_IDS_INSTR_SYSTEM_i;                        
            IDF_IDS_INSTR_BRANCH_o                                          <=  IDF_IDS_INSTR_BRANCH_i;
            IDF_IDS_BRANCH_PREDIC_RES_o                                     <=  IDF_IDS_BRANCH_PREDIC_RES_i ;
            IDF_IDS_BRANCH_RESERVE_ADDR_o                                   <=  IDF_IDS_BRANCH_RESERVE_ADDR_i; 
            IDF_IDS_OPERAND1_SEL_o                                          <=  IDF_IDS_OPERAND1_SEL_i;
            IDF_IDS_OPERAND2_SEL_o                                          <=  IDF_IDS_OPERAND2_SEL_i;
            IDF_IDS_CSR_OUTPUT_o                                            <=  IDF_IDS_CSR_OUTPUT_i; 
            IDF_IDS_GPR_OUTPUT1_o                                           <=  IDF_IDS_GPR_OUTPUT1_i     ;
            IDF_IDS_GPR_OUTPUT2_o                                           <=  IDF_IDS_GPR_OUTPUT2_i     ;
            IDF_IDS_IMM_o                                                   <=  IDF_IDS_IMM_i         ;
            IDF_IDS_GPR_BYPASSDATA_EX_o                                     <=  IDF_IDS_GPR_BYPASSDATA_EX_i ;
            IDF_IDS_GPR_BYPASSDATA_MEM_o                                    <=  IDF_IDS_GPR_BYPASSDATA_MEM_i;
            IDF_IDS_GPR_BYPASSDATA_WB_o                                     <=  IDF_IDS_GPR_BYPASSDATA_WB_i ;
            IDF_IDS_CSR_BYPASSDATA_EX_o                                     <=  IDF_IDS_CSR_BYPASSDATA_EX_i ;
            IDF_IDS_CSR_BYPASSDATA_MEM_o                                    <=  IDF_IDS_CSR_BYPASSDATA_MEM_i;
            IDF_IDS_CSR_BYPASSDATA_WB_o                                     <=  IDF_IDS_CSR_BYPASSDATA_WB_i ;
            IDF_IDS_RS1_BYPASSDATA_SEL_o                                    <=  IDF_IDS_RS1_BYPASSDATA_SEL_i;
            IDF_IDS_RS2_BYPASSDATA_SEL_o                                    <=  IDF_IDS_RS2_BYPASSDATA_SEL_i;
            IDF_IDS_CSR_BYPASSDATA_SEL_o                                    <=  IDF_IDS_CSR_BYPASSDATA_SEL_i;
            IDF_IDS_RS1_BYPASSDATA_EX_SEL_o                                 <=  IDF_IDS_RS1_BYPASSDATA_EX_SEL_i ;
            IDF_IDS_RS1_BYPASSDATA_MEM_SEL_o                                <=  IDF_IDS_RS1_BYPASSDATA_MEM_SEL_i;
            IDF_IDS_RS1_BYPASSDATA_WB_SEL_o                                 <=  IDF_IDS_RS1_BYPASSDATA_WB_SEL_i ;
            IDF_IDS_RS2_BYPASSDATA_EX_SEL_o                                 <=  IDF_IDS_RS2_BYPASSDATA_EX_SEL_i ;
            IDF_IDS_RS2_BYPASSDATA_MEM_SEL_o                                <=  IDF_IDS_RS2_BYPASSDATA_MEM_SEL_i;
            IDF_IDS_RS2_BYPASSDATA_WB_SEL_o                                 <=  IDF_IDS_RS2_BYPASSDATA_WB_SEL_i ;
            IDF_IDS_CSR_BYPASSDATA_EX_SEL_o                                 <=  IDF_IDS_CSR_BYPASSDATA_EX_SEL_i ;
            IDF_IDS_CSR_BYPASSDATA_MEM_SEL_o                                <=  IDF_IDS_CSR_BYPASSDATA_MEM_SEL_i;
            IDF_IDS_CSR_BYPASSDATA_WB_SEL_o                                 <=  IDF_IDS_CSR_BYPASSDATA_WB_SEL_i ;             
            IDF_IDS_GPR_WRITE_BACK_EN_o                                     <=  IDF_IDS_GPR_WRITE_BACK_EN_i;      
            IDF_IDS_GPR_WRITE_BACK_ID_o                                     <=  IDF_IDS_GPR_WRITE_BACK_ID_i;
            IDF_IDS_GPR_WRITE_BACK_FROM_ALU_o                               <=  IDF_IDS_GPR_WRITE_BACK_FROM_ALU_i;
            IDF_IDS_GPR_WRITE_BACK_FROM_LSU_o                               <=  IDF_IDS_GPR_WRITE_BACK_FROM_LSU_i;
            IDF_IDS_GPR_WRITE_BACK_FROM_MDU_o                               <=  IDF_IDS_GPR_WRITE_BACK_FROM_MDU_i;      
            IDF_IDS_DISP_TARGET_o                                           <=  IDF_IDS_DISP_TARGET_i;  
            IDF_IDS_CSR_WRITE_BACK_EN_o                                     <=  IDF_IDS_CSR_WRITE_BACK_EN_i;      
            IDF_IDS_CSR_WRITE_BACK_ID_o                                     <=  IDF_IDS_CSR_WRITE_BACK_ID_i;
            IDF_IDS_ALU_SHIFT_MODE_o                                        <=  IDF_IDS_ALU_SHIFT_MODE_i;                   
            IDF_IDS_ALU_OP_o                                                <=  IDF_IDS_ALU_OP_i;
            IDF_IDS_MDU_OP_o                                                <=  IDF_IDS_MDU_OP_i;           
            IDF_IDS_JALR_OFFSET_o                                           <=  IDF_IDS_JALR_OFFSET_i;                                         
        end  
    end
endmodule